#ifndef CTRANSPORTFACTORY_H_
#define CTRANSPORTFACTORY_H_

#include "ICommonDCBTransport.h"

namespace zl
{
namespace zlbase
{

/// \brief 协议类工厂类
/// 
/// 用于创建内置的协议类型的实例，通过该工厂类创建的实例，用户不用自己调用
/// delete去删除不再使用的实例
class CTransportFactory
{
public:
    CTransportFactory() = default;
    ~CTransportFactory() = default;

	/// \brief 创建协议实例
	/// 
	/// 该接口根据用户输入的协议类型创建一个对象的实例，若没有匹配的类型，
	/// 返回一个空的指针
	/// \param[in] type 协议类型
	/// \return 协议实例指针
    std::shared_ptr<ICommonDCBTransport> GetDCBTransport(int32_t type);
};

} // namespace zlbase
} // namespace zl

#endif // CTRANSPORTFACTORY_H_